Eine genaue Aufgabenstellung von Studien- und Diplomarbeiten läßt sich am besten in einem Gespräch finden. Dann können Interessen und Vorkenntnisse, Zeitraum usw. besser berücksichtigt werden. Es ist auch möglich Arbeiten im Team, oder in enger Zusammenarbeit mit anderen durchzuführen.
Also, am Besten einfach 'mal vorbeischauen:
Tilmann Bubeck Wilhelm-Schickard-Institut für Informatik Arbeitsbereich Technische Informatik Raum 129, Sand 13, D-72076 Tübingen Tel: 07071/295865; Fax: 07071-610399 EMail: bubeck@peanuts.informatik.uni-tuebingen.de(bubeck@peanuts.informatik.uni-tuebingen.de)
Aufgabe dieser Studienarbeit ist der Entwurf und die Integration eines gemeinsamen Speichers in das bestehende System. Idee dabei ist, da▀ jedes Programmstⁿck ein gemeinsames Speicherstⁿck anfordern kann und anschlie▀end lesen oder beschreiben. Wird das gleiche Speicherstⁿck von einem anderen Prozessor angefordet, dann kann dadurch ein gemeinsamer Speicher realisiert werden. Dieses Verfahren sollte sich sowohl auf Maschinen mit bereits gemeinsamem, wie auch getrenntem Hauptspeicher effizient realisieren lassen.
Nähere Informationen sind bei T. Bubeck, Raum 129, Sand 13 zu erhalten.
Aufgabe dieser Studienarbeit ist die Parallelisierung des vorhandenen RayTracers mit den Verfahren von DTS. Dabei mu▀ das bisherige Programm um (wenige) Anweisungen zur Parallelsierung erweitert werden und die entstehenden Schnittstellen an beide Systeme angepa▀t werden.
Nähere Informationen sind bei T. Bubeck, Raum 129, Sand 13 zu erhalten.
Im Bereich des parallelen Rechnens, besonders bei Maschinen mit getrenntem Hauptspeicher, lassen sich Programmlaufzeiten nur sehr schwer messen. Das bei sequentiellen Programmen benutzte Verfahren mittels time(1) die von anderen Einflüssen bereinigte Programmlaufzeit durch das Betriebssystem messen zu lassen, versagt bei parallelen Algorithmen.
Aus diesem Grund wurde das Programmpaket Speedy entwickelt. Es erlaubt
auf Basis von Informationen, die während der Programmausführung
gesammelt werden, den Programmfluß mit den benötigten Zeitannotationen
zu rekonstruieren. Dabei werden im Moment die für die Kommunikation
benötigten Zeiten nicht berücksichtigt.
Aufgabe dieser Studienarbeit ist deshalb die Erweiterung von Speedy, sodaß
auch die Kommunikationszeiten in die Berechnung der Laufzeit eingehen.
Durch Austausch einiger Konstanten kann dann auf Basis eines auf einer
konkreten Architektur abgelaufenen Programmes eine Aussage darüber
gemacht werden, wie schnell dieses auf anderen Verbindungsnetzen sein würde.
Die praktische Verwendbarkeit des neuen Verfahrens soll gezeigt werden,
indem die Kommunikationszeiten von bereits parallelisierten Programmen
mit Speedy gemessen werden. Diese sollen dann mit den Zeiten verglichen
werden, die mittels time(1) erhalten wurden.
Voraussetzung für diese Studienarbeit sind Kenntnisse in C/C++. Der Nachweis über eine erfolgreiche Teilnahme erfordert eine schriftliche Ausarbeitung sowie einen abschließenden Vortrag in unserem Mitarbeiter- und Diplomandenseminar.
Nähere Informationen sind bei T. Bubeck, Raum 129, Sand 13 zu erhalten.
Zur Mitarbeit am Distributed Thread System (DTS) suche ich ab sofort einen Hiwi. Eine mögliche Aufgabe besteht darin, die DTS-Threads auf einem anderen Thread-System (POSIX-PThreads) aufzusetzen, und damit eine Portierung auf AIX 3.2.5 zu ermöglichen. Voraussetzungen sind Kenntnisse in C, Unix und dessen typischen Werkzeugen, sowie die Bereitschaft im Team zu arbeiten.
Nachfolgend eine kurze Beschreibung von DTS selbst, damit eine ungefähre Vorstellung der Arbeit vermittelt werden kann. Interessenten können sich bei Till Bubeck im Raum 129 melden. Dabei kann auch auf individuelle Wünsche hinsichtlich des Arbeitsgebietes eingegangen werden.
Durch die Entwicklung der Mikroprozessor- und Netzwerktechnik sind heutige Workstationnetze in der Lage, durch verteiltes Rechnen Rechenkapazitäten von Großrechnern zu erreichen oder so gar zu übertreffen. Die dazu notwendige Programmierung unterscheidet sich jedoch fundamental von der herkömmlichen, sequentiellen. Zusätzlich zum Finden der Lösung eines Problems, muß diese beim verteilten Rechnen noch in kleine, parallel auszuführende Einheiten unterteilt und auf verschiedenen Prozessoren nebenläufig ausgeführt werden. Zur Erleichterung dieser Arbeit wurde das Distributed Thread System (DTS) entwickelt, das es dem Benutzer auf einfache Weise ermöglicht, seine Programme über ein Netz von lose gekoppelten Workstations zu verteilen, und stellt im Kern einen nicht blockierenden Remote-Procedure-Call (RPC) zur Verfügung. Es orientiert sich dabei an den auf Multiprozessoren mit gemeinsamem Hauptspeicher bekannten Thread-Paketen und ermöglicht damit die einheitliche Handhabung von lokalen Threads und netzwerkübergreifenden Funktionsaufrufen. Zusätzlich sorgt das System für eine gleichmäßige Lastverteilung und Fehlertoleranz beim Ausfall von Maschinen.
Nähere Informationen sind bei T. Bubeck, Raum 129, Sand 13 zu erhalten.